#!/bin/bash

# Vision Analyzer MCP服务添加脚本
# 使用此脚本将MCP服务添加到Claude

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 项目路径
PROJECT_PATH="/Users/emu/gitee/vision-analyzer"
SERVICE_NAME="vision-analyzer"

echo -e "${BLUE}🔍 Vision Analyzer MCP服务添加助手${NC}"
echo "=================================="
echo

# 检查项目路径是否存在
if [ ! -d "$PROJECT_PATH" ]; then
    echo -e "${RED}❌ 错误: 项目路径不存在: $PROJECT_PATH${NC}"
    exit 1
fi

echo -e "${GREEN}✅ 项目路径验证通过: $PROJECT_PATH${NC}"
echo

# 检查Node.js和npm
if ! command -v node &> /dev/null; then
    echo -e "${RED}❌ 错误: Node.js未安装${NC}"
    exit 1
fi

if ! command -v npm &> /dev/null; then
    echo -e "${RED}❌ 错误: npm未安装${NC}"
    exit 1
fi

echo -e "${GREEN}✅ Node.js和npm验证通过${NC}"
echo

# 检查依赖是否安装
cd "$PROJECT_PATH"
if [ ! -d "node_modules" ]; then
    echo -e "${YELLOW}📦 正在安装依赖...${NC}"
    npm install
    echo -e "${GREEN}✅ 依赖安装完成${NC}"
else
    echo -e "${GREEN}✅ 依赖已安装${NC}"
fi
echo

# 检查环境配置
if [ ! -f ".env" ]; then
    echo -e "${YELLOW}⚠️  警告: .env文件不存在，请确保配置了API密钥${NC}"
    if [ -f ".env.example" ]; then
        echo "请复制 .env.example 到 .env 并配置您的API密钥："
        echo "cp .env.example .env"
    fi
else
    echo -e "${GREEN}✅ 环境配置文件存在${NC}"
fi
echo

# 检查Claude CLI
if ! command -v claude &> /dev/null; then
    echo -e "${RED}❌ 错误: Claude CLI未安装${NC}"
    echo "请先安装Claude CLI: https://claude.ai/download"
    exit 1
fi

echo -e "${GREEN}✅ Claude CLI验证通过${NC}"
echo

# 检查是否已存在同名服务
if claude mcp list | grep -q "$SERVICE_NAME"; then
    echo -e "${YELLOW}⚠️  警告: 已存在名为 '$SERVICE_NAME' 的MCP服务${NC}"
    read -p "是否要替换现有服务? (y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        echo "操作已取消"
        exit 0
    fi
    echo -e "${YELLOW}🗑️  正在删除现有服务...${NC}"
    claude mcp remove "$SERVICE_NAME"
fi

echo -e "${BLUE}🔧 正在添加MCP服务到Claude...${NC}"

# 添加MCP服务
claude mcp add "$SERVICE_NAME" "node" "$PROJECT_PATH/index.js"

if [ $? -eq 0 ]; then
    echo
    echo -e "${GREEN}✅ MCP服务添加成功！${NC}"
    echo
    echo -e "${BLUE}📋 服务详情:${NC}"
    echo "  服务名称: $SERVICE_NAME"
    echo "  命令: node $PROJECT_PATH/index.js"
    echo "  项目路径: $PROJECT_PATH"
    echo
    echo -e "${BLUE}🚀 使用方法:${NC}"
    echo "1. 重启Claude Desktop应用"
    echo "2. 在Claude中您可以这样使用:"
    echo "   - '请分析这个界面的设计，提取所有UI组件的层次结构'"
    echo "   - '识别这个设计中的视觉令牌，包括颜色系统、字体和间距规范'"
    echo "   - '获取这个截图的精确布局规格，包括所有元素的间距和对齐方式'"
    echo
    echo -e "${BLUE}🧪 测试服务:${NC}"
    echo "启动MCP服务进行测试:"
    echo "  cd $PROJECT_PATH && npm start"
    echo
    echo -e "${BLUE}📚 查看可用工具:${NC}"
    echo "  echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}' | node $PROJECT_PATH/index.js"
    echo
    echo -e "${GREEN}🎉 添加完成！现在您可以在Claude中使用视觉分析功能了。${NC}"
else
    echo -e "${RED}❌ MCP服务添加失败${NC}"
    exit 1
fi